﻿
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;

namespace indicadores.Models
{
    public class VariavelRepositorio
    {
        public IndicadoresContext context = new IndicadoresContext();

        public void Adiciona(Variavel v)
        {
            //try
            //{
                context.Variaveis.Add(v);
                context.SaveChanges();
            //}
            //catch (Exception e)
            //{
            //    new Logs(e.ToString(), "Adicionar Variavel");
            //}
        }

        public Variavel Busca(int id)
        {
            try
            {
                return context.Set<Variavel>().Find(id);
            }
            catch (Exception e)
            {
                new Logs(e.ToString(), "Buscar Variavel");
                Variavel v = new Variavel();
                v.Id = 0;
                v.Nome = "Erro com o banco";
                v.Unidade = "Erro com o banco";
                return v;
            }
        }

        public List<Variavel> BuscaTodas()
        {
            try
            {
                var consulta = from e in context.Set<Variavel>()
                               select e;
                return consulta.ToList();
            }
            catch (Exception e)
            {
                new Logs(e.ToString(), "Buscar Todas Variaveis");
                return new List<Variavel>();
            }
        }

        public void Alterar(Variavel v)
        {
            try
            {
                context.Entry(v).State = EntityState.Modified;
                context.SaveChanges();
            }
            catch (Exception e)
            {
                new Logs(e.ToString(), "Alterar Variavel");
            }
        }

        public void Apagar(int id)
        {
            try
            {
                context.Variaveis.Remove(Busca(id));
                context.SaveChanges();
            }
            catch (Exception e)
            {
                new Logs(e.ToString(), "Apagar Variavel");
            }
        }
    }
}